Double recursion
In recursive function theory, double recursion is an extension of primitive recursion which allows the definition of non-primitive recursive functions like the Ackermann function.
Raphael M. Robinson called functions of two natural number variables G(n, x) double recursive with respect to given functions, if
- G(0, x) is a given function of x.
- G(n + 1, 0) is obtained by substitution from the function G(n, ·) and given functions.
- G(n + 1, x + 1) is obtained by substitution from G(n + 1, x), the function G(n, ·) and given functions.[1]
Robinson goes on to provide a specific double recursive function (originally defined by Rózsa Péter)
- G(0, x) = x + 1
- G(n + 1, 0) = G(n, 1)
- G(n + 1, x + 1) = G(n, G(n + 1, x))
where the given functions are primitive recursive, but G is not primitive recursive. In fact, this is precisely the function now known as the Ackermann function.
See also
References
‹The stub template below has been proposed for renaming to . See stub types for deletion to help reach a consensus on what to do.
Feel free to edit the template, but the template must not be blanked, and this notice must not be removed, until the discussion is closed. For more information, read the guide to deletion.›